package product

import (
	"encoding/json"
	"fmt"
	"os"
)

func GetProductMt(string2 string) ProductMt {
	filePtr, err := os.Open(string2)
	if err != nil {
		fmt.Println("文件打开失败 [Err:%s]", err.Error())

	}
	defer filePtr.Close()

	var products ProductMt
	// 创建json解码器
	decoder := json.NewDecoder(filePtr)
	err = decoder.Decode(&products)
	if err != nil {
		fmt.Println("解码失败", err.Error())
	} else {
		//fmt.Println("解码成功")
	}
	return products
}

func GetProductMtCopy(string2 string) Sputag {
	filePtr, err := os.Open(string2)
	if err != nil {
		fmt.Println("文件打开失败 [Err:%s]", err.Error())

	}
	defer filePtr.Close()

	var products Sputag
	// 创建json解码器
	decoder := json.NewDecoder(filePtr)
	err = decoder.Decode(&products)
	if err != nil {
		fmt.Println("解码失败", err.Error())
	} else {
		//fmt.Println("解码成功")
	}
	return products
}

type ProductMt struct {
	Data struct {
		Sortable            bool `json:"sortable"`
		Combination         bool `json:"combination"`
		ValidationConfigMap struct {
			Num200001483 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"200001483"`
			Num200001484 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"200001484"`
			Num200001485 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"200001485"`
			Num200001494 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"200001494"`
			Num200001497 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"200001497"`
			Num200001498 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"200001498"`
			Num200005326 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"200005326"`
			Num200005661 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"200005661"`
			Num400000753 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"400000753"`
			Num400000756 struct {
				AllowSpVideo               bool        `json:"allowSpVideo"`
				AllowCustomProductV1       interface{} `json:"allowCustomProductV1"`
				AllowSingleNoDelivery      bool        `json:"allowSingleNoDelivery"`
				UpcNotEmpty                bool        `json:"upcNotEmpty"`
				WeightNotEmpty             bool        `json:"weightNotEmpty"`
				PropertyEditLock           bool        `json:"propertyEditLock"`
				AllowCustomProduct         bool        `json:"allowCustomProduct"`
				AllowGraphicDescription    bool        `json:"allowGraphicDescription"`
				AllowIntelligentProductTag bool        `json:"allowIntelligentProductTag"`
				AllowModifySellProperty    bool        `json:"allowModifySellProperty"`
				AllowMultiProductTag       bool        `json:"allowMultiProductTag"`
				AllowProductVideo          bool        `json:"allowProductVideo"`
				ForcePullOffShelves        bool        `json:"forcePullOffShelves"`
				HasInformationLoss         bool        `json:"hasInformationLoss"`
				InformationLossWithPicture bool        `json:"informationLossWithPicture"`
				RelateProductLibRequired   bool        `json:"relateProductLibRequired"`
				AllowMarketingPicture      bool        `json:"allowMarketingPicture"`
			} `json:"400000756"`
		} `json:"validationConfigMap"`
		IsSortable           bool        `json:"isSortable"`
		UnRelSpNum           interface{} `json:"unRelSpNum"`
		ForceRelFlag         interface{} `json:"forceRelFlag"`
		AssociateStatus      interface{} `json:"associateStatus"`
		UncompletedStatus    interface{} `json:"uncompletedStatus"`
		MonitorSwitch        bool        `json:"monitorSwitch"`
		InRetailWhiteList521 bool        `json:"inRetailWhiteList521"`
		MonitorStatus        int         `json:"monitorStatus"`
		MonitorTipStatus     int         `json:"monitorTipStatus"`
		QueryCount           struct {
			OutRange             int `json:"outRange"`
			NoQualification      int `json:"noQualification"`
			StockInsuffientCount int `json:"stockInsuffientCount"`
			TimeLimit            int `json:"timeLimit"`
			CombineProduct       int `json:"combineProduct"`
			ApproachSoldOutCount int `json:"approachSoldOutCount"`
			ViolationStopSell    int `json:"violationStopSell"`
			All                  int `json:"all"`
			SellOut              int `json:"sellOut"`
			NoPic                int `json:"noPic"`
			Incomplete           int `json:"incomplete"`
			Selling              int `json:"selling"`
			SuspendedSale        int `json:"suspendedSale"`
			MissingRequiredCount int `json:"missingRequiredCount"`
		} `json:"queryCount"`
		ProductList []struct {
			TagCount                 int         `json:"tagCount"`
			IsMedicare               bool        `json:"isMedicare"`
			UnreleasedID             int         `json:"unreleasedId"`
			BrandSourceType          int         `json:"brandSourceType"`
			NoStockAutoClear         bool        `json:"noStockAutoClear"`
			SaveOrUpdate             int         `json:"saveOrUpdate"`
			RecommandAvailableTime   interface{} `json:"recommandAvailableTime"`
			IsThy                    bool        `json:"isThy"`
			EnableStockEditing       bool        `json:"enableStockEditing"`
			Medicare                 bool        `json:"medicare"`
			FillOrCheck              int         `json:"fillOrCheck"`
			UnComplianceFlag         int         `json:"unComplianceFlag"`
			NameClone                interface{} `json:"nameClone"`
			CombinationLabel         int         `json:"combinationLabel"`
			PrescriptionLabel        int         `json:"prescriptionLabel"`
			PlatformLimitSaleRule    interface{} `json:"platformLimitSaleRule"`
			AuditUpdateData          bool        `json:"auditUpdateData"`
			PlatformStopSellLabelMsg interface{} `json:"platformStopSellLabelMsg"`
			GracePeriodEndTime       int         `json:"gracePeriodEndTime"`
			Flavour                  interface{} `json:"flavour"`
			LimitRuleID              int         `json:"limitRuleId"`
			ApproachSoldOut          bool        `json:"approachSoldOut"`
			PlatformStopSellTips     interface{} `json:"platformStopSellTips"`
			ShippingTime             string      `json:"shippingTime"`
			AuditCreateTime          int         `json:"auditCreateTime"`
			AuditUpdateTime          int         `json:"auditUpdateTime"`
			Description              string      `json:"description"`
			WmProductSkus            []struct {
				Weight4G       int     `json:"weight4g"`
				Weight         float64 `json:"weight"`
				SourceFoodCode string  `json:"sourceFoodCode"`
				UpcCode        string  `json:"upcCode"`
				Spec           string  `json:"spec"`
				WeightUnit     string  `json:"weight_unit"`
				Price          float64 `json:"price"`
				Stock          int     `json:"stock"`
				MinOrderCount  int     `json:"minOrderCount"`
				BoxPrice       float64 `json:"boxPrice"`
				BoxNum         float64 `json:"boxNum"`
				ID             int64   `json:"id"`
			} `json:"wmProductSkus"`
			CategoryID          int         `json:"categoryId"`
			BrandID             int         `json:"brandId"`
			IsSp                int         `json:"isSp"`
			Labels              interface{} `json:"labels"`
			TagName             string      `json:"tagName"`
			SellStatus          int         `json:"sellStatus"`
			CategoryNamePath    string      `json:"categoryNamePath"`
			Incomplete          int         `json:"incomplete"`
			WmProductSpuExtends struct {
				Num1200000088 struct {
					SetValueID          bool        `json:"setValue_id"`
					ValueSequence       int         `json:"value_sequence"`
					SetValueSequence    bool        `json:"setValue_sequence"`
					SetPrice            bool        `json:"setPrice"`
					SetWmProductSpuID   bool        `json:"setWm_product_spu_id"`
					SetCategoryID       bool        `json:"setCategory_id"`
					SetOldValue         bool        `json:"setOldValue"`
					SetTemplateID       bool        `json:"setTemplate_id"`
					SetParentValueID    bool        `json:"setParent_value_id"`
					SetScore            bool        `json:"setScore"`
					PropertySequence    int         `json:"property_sequence"`
					SetPropertySequence bool        `json:"setProperty_sequence"`
					ParentPropertyID    int         `json:"parent_property_id"`
					SetParentPropertyID bool        `json:"setParent_property_id"`
					Sequence            int         `json:"sequence"`
					OldValue            interface{} `json:"oldValue"`
					Level               int         `json:"level"`
					Code                string      `json:"code"`
					SetID               bool        `json:"setId"`
					Ctime               int         `json:"ctime"`
					Utime               int         `json:"utime"`
					Valid               int         `json:"valid"`
					SetName             bool        `json:"setName"`
					SetLevel            bool        `json:"setLevel"`
					SetValue            bool        `json:"setValue"`
					SetType             bool        `json:"setType"`
					WmPoiID             int         `json:"wm_poi_id"`
					ValueID             int         `json:"value_id"`
					Price               float64     `json:"price"`
					IsLeaf              int         `json:"is_leaf"`
					WmProductSpuID      int64       `json:"wm_product_spu_id"`
					CategoryID          int         `json:"category_id"`
					TemplateID          int         `json:"template_id"`
					ParentValueID       int         `json:"parent_value_id"`
					Score               float64     `json:"score"`
					SetCode             bool        `json:"setCode"`
					SetIsLeaf           bool        `json:"setIs_leaf"`
					SetWmPoiID          bool        `json:"setWm_poi_id"`
					SetSequence         bool        `json:"setSequence"`
					SetCtime            bool        `json:"setCtime"`
					SetUtime            bool        `json:"setUtime"`
					SetValid            bool        `json:"setValid"`
					SpOverrided         bool        `json:"spOverrided"`
					SetSpOverrided      bool        `json:"setSpOverrided"`
					Name                string      `json:"name"`
					Value               string      `json:"value"`
					ID                  int64       `json:"id"`
					Type                int         `json:"type"`
				} `json:"1200000088"`
			} `json:"wmProductSpuExtends"`
			UpcCode string `json:"upcCode"`
			TagID   int    `json:"tagId"`
			TagList []struct {
				Description       string      `json:"description"`
				Sequence          int         `json:"sequence"`
				Level             int         `json:"level"`
				SetID             bool        `json:"setId"`
				TopFlag           int         `json:"top_flag"`
				TimeZone          string      `json:"time_zone"`
				Ctime             int         `json:"ctime"`
				Utime             int         `json:"utime"`
				Valid             int         `json:"valid"`
				SetName           bool        `json:"setName"`
				Children          interface{} `json:"children"`
				Extend            string      `json:"extend"`
				SetExtend         bool        `json:"setExtend"`
				SetLevel          bool        `json:"setLevel"`
				AppTagCode        string      `json:"app_tag_code"`
				BuzType           int         `json:"buz_type"`
				WmPoiID           int         `json:"wm_poi_id"`
				ParentID          int         `json:"parent_id"`
				IsLeaf            int         `json:"is_leaf"`
				WmCategoryCode    string      `json:"wm_category_code"`
				NodePath          string      `json:"node_path"`
				TagType           int         `json:"tag_type"`
				HqID              int         `json:"hqId"`
				ActPolicyID       int         `json:"act_policy_id"`
				OuterFtagID       int         `json:"outer_ftag_id"`
				PoiID             int         `json:"poi_id"`
				SetPoiID          bool        `json:"setPoi_id"`
				SetActPolicyID    bool        `json:"setAct_policy_id"`
				SetWmCategoryCode bool        `json:"setWm_category_code"`
				SetNodePath       bool        `json:"setNode_path"`
				SetParentID       bool        `json:"setParent_id"`
				SetBuzType        bool        `json:"setBuz_type"`
				SetAppTagCode     bool        `json:"setApp_tag_code"`
				SetTopFlag        bool        `json:"setTop_flag"`
				SetTimeZone       bool        `json:"setTime_zone"`
				SetTagType        bool        `json:"setTag_type"`
				SetIsLeaf         bool        `json:"setIs_leaf"`
				SetOuterFtagID    bool        `json:"setOuter_ftag_id"`
				ChildrenSize      int         `json:"childrenSize"`
				ChildrenIterator  interface{} `json:"childrenIterator"`
				SetChildren       bool        `json:"setChildren"`
				TempTagID         int         `json:"tempTagId"`
				SetTempTagID      bool        `json:"setTempTagId"`
				HqTagID           int         `json:"hqTagId"`
				SetHqTagID        bool        `json:"setHqTagId"`
				SetWmPoiID        bool        `json:"setWm_poi_id"`
				SetSequence       bool        `json:"setSequence"`
				SetCtime          bool        `json:"setCtime"`
				SetUtime          bool        `json:"setUtime"`
				SetValid          bool        `json:"setValid"`
				SetDescription    bool        `json:"setDescription"`
				SetHqID           bool        `json:"setHqId"`
				Name              string      `json:"name"`
				ID                int         `json:"id"`
			} `json:"tagList"`
			BrandName           interface{} `json:"brandName"`
			OriginName          interface{} `json:"originName"`
			SpID                interface{} `json:"spId"`
			Picture             string      `json:"picture"`
			ComplianceStatus    int         `json:"complianceStatus"`
			AttrList            interface{} `json:"attrList"`
			WmProductVideo      interface{} `json:"wmProductVideo"`
			SpBrandID           int         `json:"spBrandId"`
			SkuID               int         `json:"skuId"`
			CategoryName        string      `json:"categoryName"`
			CategoryType        int         `json:"categoryType"`
			AuditStatus         int         `json:"auditStatus"`
			SuggestCategoryID   int         `json:"suggestCategoryId"`
			MissingRequiredInfo bool        `json:"missingRequiredInfo"`
			Pictures            []string    `json:"pictures"`
			SgLabels            interface{} `json:"sgLabels"`
			CategoryIDPath      string      `json:"categoryIdPath"`
			SaleType            int         `json:"saleType"`
			IsPlatformStopSell  int         `json:"isPlatformStopSell"`
			ViolationID         interface{} `json:"violationId"`
			IsStopSell          int         `json:"isStopSell"`
			SellCount           int         `json:"sellCount"`
			LikeCount           int         `json:"likeCount"`
			Name                string      `json:"name"`
			ID                  int64       `json:"id"`
		} `json:"productList"`
		TagList    []interface{} `json:"tagList"`
		PageNum    int           `json:"pageNum"`
		PageSize   int           `json:"pageSize"`
		TotalCount int           `json:"totalCount"`
		Message    string        `json:"message"`
	} `json:"data"`
	Code int    `json:"code"`
	Msg  string `json:"msg"`
}

type Sputag struct {
	Msg  string `json:"msg"`
	Code int    `json:"code"`
	Data struct {
		ProductTagID   string `json:"product_tag_id"`
		CurrentPage    int    `json:"current_page"`
		HasNextPage    bool   `json:"has_next_page"`
		ProductCount   int    `json:"product_count"`
		ProductSpuList []struct {
			StandardCategorys []struct {
				ID       int    `json:"id"`
				Name     string `json:"name"`
				Level    int    `json:"level"`
				SetID    bool   `json:"setId"`
				SetLevel bool   `json:"setLevel"`
				SetName  bool   `json:"setName"`
			} `json:"standardCategorys"`
			ID                int64         `json:"id"`
			Name              string        `json:"name"`
			MinPrice          float64       `json:"min_price"`
			MemberPrice       float64       `json:"member_price"`
			PraiseCount       int           `json:"praise_count"`
			PraiseNum         int           `json:"praise_num"`
			PraiseContent     string        `json:"praise_content"`
			TreadNum          int           `json:"tread_num"`
			PraiseNumNew      int           `json:"praise_num_new"`
			Unit              string        `json:"unit"`
			Description       string        `json:"description"`
			Picture           string        `json:"picture"`
			MonthSaled        int           `json:"month_saled"`
			MonthSaledContent string        `json:"month_saled_content"`
			WantToBuy         int           `json:"want_to_Buy"`
			WantToBuyContent  string        `json:"want_to_buy_content"`
			Status            int           `json:"status"`
			StatusDescription string        `json:"status_description"`
			StatusRemindList  []interface{} `json:"status_remind_list"`
			Attrs             []interface{} `json:"attrs"`
			SkuLabel          string        `json:"sku_label"`
			Skus              []struct {
				ID          int64   `json:"id"`
				Spec        string  `json:"spec"`
				Description string  `json:"description"`
				Picture     string  `json:"picture"`
				Price       float64 `json:"price"`
				OriginPrice float64 `json:"origin_price"`
				BoxNum      float64 `json:"box_num"`
				BoxPrice    float64 `json:"box_price"`
				Percentage  float64 `json:"percentage"`
				LadderBox   struct {
					Status      int     `json:"status"`
					LadderNum   int     `json:"ladderNum"`
					LadderPrice float64 `json:"ladderPrice"`
				} `json:"ladderBox"`
				MinOrderCount     int     `json:"min_order_count"`
				Status            int     `json:"status"`
				Stock             int     `json:"stock"`
				MemberPrice       float64 `json:"member_price"`
				ExchangePrice     float64 `json:"exchange_price"`
				Upccode           string  `json:"upccode"`
				Restrict          int     `json:"restrict"`
				Subscribe         int     `json:"subscribe"`
				RealStock         int     `json:"real_stock"`
				ActivityStock     int     `json:"activity_stock"`
				ActivityUUID      string  `json:"activityUuid"`
				ShareActivityUUID string  `json:"shareActivityUuid"`
				PromotionInfo     string  `json:"promotion_info"`
				Promotion         struct {
					LabelPic           string `json:"label_pic"`
					PromotionText      string `json:"promotion_text"`
					DeliveryDiscount   string `json:"delivery_discount"`
					SkuInfoColor       string `json:"sku_info_color"`
					Width              int    `json:"width"`
					Height             int    `json:"height"`
					LabelType          int    `json:"label_type"`
					ReceiveStatus      int    `json:"receive_status"`
					BrandBeltStyle     int    `json:"brand_belt_style"`
					PromotionStyleType int    `json:"promotion_style_type"`
				} `json:"promotion"`
				ActivityActText string      `json:"activity_act_text"`
				StockLabel      string      `json:"stock_label"`
				LabelList       interface{} `json:"labelList"`
				SchemeFood      string      `json:"scheme_food"`
				DetailScheme    string      `json:"detail_scheme"`
				UnifyPrice      struct {
					Price              float64 `json:"price"`
					PriceStr           string  `json:"price_str"`
					UnderlinedPrice    float64 `json:"underlined_price"`
					UnderlinedPriceStr string  `json:"underlined_price_str"`
					ActivityInfo       struct {
						SkuID                        int64       `json:"sku_id"`
						ActivityPrice                float64     `json:"activity_price"`
						ActivityPriceStr             string      `json:"activity_price_str"`
						ActivityPriceSuffix          interface{} `json:"activity_price_suffix"`
						CompoundPriceUnit            interface{} `json:"compound_price_unit"`
						ActivityTagSuffix            interface{} `json:"activity_tag_suffix"`
						ActivityType                 int         `json:"activity_type"`
						ActivityPriceSource          int         `json:"activity_price_source"`
						SecondaryActivityPrice       float64     `json:"secondary_activity_price"`
						SecondaryActivityPriceStr    string      `json:"secondary_activity_price_str"`
						SecondaryActivityPriceSuffix interface{} `json:"secondary_activity_price_suffix"`
						SecondaryActivityPriceSource int         `json:"secondary_activity_price_source"`
						QuotaPerOrder                int         `json:"quota_per_order"`
						UnderlinePrice               float64     `json:"underline_price"`
						UnderlinePriceStr            string      `json:"underline_price_str"`
						MinOrderCount                int         `json:"min_order_count"`
						MinOrderUnderlinePrice       float64     `json:"min_order_underline_price"`
						MinOrderUnderlinePriceStr    string      `json:"min_order_underline_price_str"`
						ActivityPricePrefix          interface{} `json:"activity_price_prefix"`
					} `json:"activity_info"`
					ActualPriceInfo struct {
						SkuID                  int64       `json:"sku_id"`
						ActualPrice            float64     `json:"actual_price"`
						ActualPriceStr         string      `json:"actual_price_str"`
						ActualPriceText        string      `json:"actual_price_text"`
						SgActualPriceLongText  interface{} `json:"sg_actual_price_long_text"`
						SgActualPriceShortText interface{} `json:"sg_actual_price_short_text"`
						UnitText               string      `json:"unit_text"`
						SkuCount               int         `json:"sku_count"`
						CalType                int         `json:"cal_type"`
					} `json:"actual_price_info"`
				} `json:"unify_price"`
				DynamicActLabels []struct {
					CornerRadius []string `json:"corner_radius"`
					RuleID       int      `json:"rule_id"`
					SubTags      []struct {
						FontWeight        string `json:"font_weight"`
						OriginalPrice     int    `json:"original_price"`
						ReducePrice       int    `json:"reduce_price"`
						CategoryID        int    `json:"category_id"`
						FontSize          string `json:"font_size"`
						Text              string `json:"text"`
						TextColor         string `json:"text_color"`
						Type              int    `json:"type"`
						HorizontalPadding string `json:"horizontal_padding"`
					} `json:"sub_tags"`
					ClickExposeInfo struct {
						ActivityID string `json:"activity_id"`
						Index      string `json:"index"`
						Status     string `json:"status"`
					} `json:"click_expose_info"`
					TagHeight        string `json:"tag_height"`
					UseDynamicHeight string `json:"use_dynamic_height"`
					BorderColor      string `json:"border_color"`
				} `json:"dynamic_act_labels"`
				TotalStockLabel string `json:"total_stock_label"`
				BrandNearbyInfo struct {
					NearbyPoiCount int `json:"nearby_poi_count"`
				} `json:"brand_nearby_info"`
				AuthStatus   int    `json:"auth_status"`
				ProductType  int    `json:"product_type"`
				FixAccessURI string `json:"fixAccessUri"`
			} `json:"skus"`
			Tag           string `json:"tag"`
			Sequence      int    `json:"sequence"`
			PromotionInfo string `json:"promotion_info"`
			Promotion     struct {
				LabelPic           string `json:"label_pic"`
				PromotionText      string `json:"promotion_text"`
				DeliveryDiscount   string `json:"delivery_discount"`
				SkuInfoColor       string `json:"sku_info_color"`
				Width              int    `json:"width"`
				Height             int    `json:"height"`
				LabelType          int    `json:"label_type"`
				ReceiveStatus      int    `json:"receive_status"`
				BrandBeltStyle     int    `json:"brand_belt_style"`
				PromotionStyleType int    `json:"promotion_style_type"`
			} `json:"promotion"`
			ActivityTag string `json:"activity_tag"`
			ShareTip    struct {
				Channels        []int  `json:"channels"`
				Description     string `json:"description"`
				DescriptionIcon string `json:"description_icon"`
				ShareButtonIcon string `json:"share_button_icon"`
				ActivityID      int    `json:"activity_id"`
				ActivityIDStr   string `json:"activity_id_str"`
				ActivityType    int    `json:"activity_type"`
				MiniProgramID   string `json:"miniProgramId"`
				ShareInfo       struct {
					Icon          string `json:"icon"`
					Title         string `json:"title"`
					Content       string `json:"content"`
					URL           string `json:"url"`
					WeixinURL     string `json:"weixin_url"`
					ShareLabelImg string `json:"share_label_img"`
				} `json:"share_info"`
			} `json:"share_tip"`
			ActivityType   int `json:"activity_type"`
			ActivityPolicy struct {
				DiscountByCount struct {
					Count    int     `json:"count"`
					Discount float64 `json:"discount"`
				} `json:"discount_by_count"`
			} `json:"activity_policy"`
			FriendsPraiseContent         string        `json:"friends_praise_content"`
			FriendsNicknamePraiseContent string        `json:"friends_nickname_praise_content"`
			ProductLabelPicture          string        `json:"product_label_picture"`
			ProductLabelPictureList      []interface{} `json:"product_label_picture_list"`
			LogField                     struct {
				ProductLabelTypeList []interface{} `json:"product_label_type_list"`
				RecommendLabelType   int           `json:"recommend_label_type"`
			} `json:"log_field"`
			LabelText         string        `json:"label_text"`
			ActivityTagID     string        `json:"activity_tag_id"`
			IsFreeget         bool          `json:"is_freeget"`
			FreegetURL        string        `json:"freeget_url"`
			ActivityUUID      string        `json:"activityUuid"`
			ActivityActText   string        `json:"activity_act_text"`
			RankNumLabel      string        `json:"rank_num_label"`
			ShareActivityUUID string        `json:"shareActivityUuid"`
			StockLabel        string        `json:"stock_label"`
			AdvertIcon        interface{}   `json:"advert_icon"`
			PraiseRate        string        `json:"praise_rate"`
			PraiseRateNum     string        `json:"praise_rate_num"`
			Subscribe         int           `json:"subscribe"`
			LabelInfo         []interface{} `json:"label_info"`
			CoverURL          string        `json:"cover_url"`
			VideoTime         interface{}   `json:"video_time"`
			LengthWidthRatio  float64       `json:"length_width_ratio"`
			WmActivityType    string        `json:"wmActivityType"`
			ProductAttrLabel  struct {
				Type          int      `json:"type"`
				AttrLabelList []string `json:"attr_label_list"`
			} `json:"product_attr_label,omitempty"`
			LabelsUnderName     []interface{} `json:"labels_under_name,omitempty"`
			SaleType            int           `json:"sale_type"`
			ProductUnderLabel   interface{}   `json:"product_under_label"`
			MonthSaledSort      int           `json:"month_saled_sort"`
			PresaleDeliveryTime int           `json:"presale_delivery_time"`
			DetailScheme        string        `json:"detail_scheme"`
			Selected            int           `json:"selected"`
			UnifyPrice          struct {
				Price              float64 `json:"price"`
				PriceStr           string  `json:"price_str"`
				UnderlinedPrice    float64 `json:"underlined_price"`
				UnderlinedPriceStr string  `json:"underlined_price_str"`
				ActivityInfo       struct {
					SkuID                        int64       `json:"sku_id"`
					ActivityPrice                float64     `json:"activity_price"`
					ActivityPriceStr             string      `json:"activity_price_str"`
					ActivityPriceSuffix          interface{} `json:"activity_price_suffix"`
					CompoundPriceUnit            interface{} `json:"compound_price_unit"`
					ActivityTagSuffix            interface{} `json:"activity_tag_suffix"`
					ActivityType                 int         `json:"activity_type"`
					ActivityPriceSource          int         `json:"activity_price_source"`
					SecondaryActivityPrice       float64     `json:"secondary_activity_price"`
					SecondaryActivityPriceStr    string      `json:"secondary_activity_price_str"`
					SecondaryActivityPriceSuffix interface{} `json:"secondary_activity_price_suffix"`
					SecondaryActivityPriceSource int         `json:"secondary_activity_price_source"`
					QuotaPerOrder                int         `json:"quota_per_order"`
					UnderlinePrice               float64     `json:"underline_price"`
					UnderlinePriceStr            string      `json:"underline_price_str"`
					MinOrderCount                int         `json:"min_order_count"`
					MinOrderUnderlinePrice       float64     `json:"min_order_underline_price"`
					MinOrderUnderlinePriceStr    string      `json:"min_order_underline_price_str"`
					ActivityPricePrefix          interface{} `json:"activity_price_prefix"`
				} `json:"activity_info"`
				ActualPriceInfo struct {
					SkuID                  int64   `json:"sku_id"`
					ActualPrice            float64 `json:"actual_price"`
					ActualPriceStr         string  `json:"actual_price_str"`
					ActualPriceText        string  `json:"actual_price_text"`
					SgActualPriceLongText  string  `json:"sg_actual_price_long_text"`
					SgActualPriceShortText string  `json:"sg_actual_price_short_text"`
					UnitText               string  `json:"unit_text"`
					SkuCount               int     `json:"sku_count"`
					CalType                int     `json:"cal_type"`
				} `json:"actual_price_info"`
				PoiVipInfo struct {
					IsPoiVip bool `json:"is_poi_vip"`
				} `json:"poi_vip_info"`
			} `json:"unify_price"`
			DynamicActLabels []struct {
				CornerRadius []string `json:"corner_radius"`
				RuleID       int      `json:"rule_id"`
				SubTags      []struct {
					FontWeight        string `json:"font_weight"`
					OriginalPrice     int    `json:"original_price"`
					ReducePrice       int    `json:"reduce_price"`
					CategoryID        int    `json:"category_id"`
					FontSize          string `json:"font_size"`
					Text              string `json:"text"`
					TextColor         string `json:"text_color"`
					Type              int    `json:"type"`
					HorizontalPadding string `json:"horizontal_padding"`
				} `json:"sub_tags"`
				ClickExposeInfo struct {
					ActivityID string `json:"activity_id"`
					Index      string `json:"index"`
					Status     string `json:"status"`
				} `json:"click_expose_info"`
				TagHeight        string `json:"tag_height"`
				UseDynamicHeight string `json:"use_dynamic_height"`
				BorderColor      string `json:"border_color"`
			} `json:"dynamic_act_labels"`
			TotalStockLabel  string      `json:"total_stock_label"`
			PriceHidden      int         `json:"price_hidden"`
			ShippingTime     interface{} `json:"shipping_time"`
			ShippingTimeStr  interface{} `json:"shipping_time_str"`
			ExchangePrice    float64     `json:"exchange_price"`
			KanoStaticLabels []struct {
				LabelType int `json:"label_type"`
				LabelData []struct {
					Priority          int         `json:"priority"`
					Scene             int         `json:"scene"`
					Content           string      `json:"content"`
					Extra             interface{} `json:"extra"`
					ValueType         int         `json:"valueType"`
					WmCKanoLabelStyle struct {
						ID                         int         `json:"id"`
						TextColor                  string      `json:"text_color"`
						BgImg                      string      `json:"bg_img"`
						ForeImg                    string      `json:"fore_img"`
						LineColor                  string      `json:"line_color"`
						BgColor                    string      `json:"bg_color"`
						Type                       int         `json:"type"`
						IconURL                    string      `json:"icon_url"`
						ImgURL                     string      `json:"img_url"`
						PreContentColor            string      `json:"preContentColor"`
						PreLabelBackgroundColor    interface{} `json:"preLabelBackgroundColor"`
						RightIconURL               string      `json:"rightIconUrl"`
						RightTextColor             interface{} `json:"right_text_color"`
						RightBgColor               interface{} `json:"right_bg_color"`
						Extra                      string      `json:"extra"`
						WordWeight                 string      `json:"word_weight"`
						FontSize                   string      `json:"font_size"`
						Transparency               string      `json:"transparency"`
						SetType                    bool        `json:"setType"`
						SetIconURL                 bool        `json:"setIcon_url"`
						SetID                      bool        `json:"setId"`
						SetPreContentColor         bool        `json:"setPreContentColor"`
						SetPreLabelBackgroundColor bool        `json:"setPreLabelBackgroundColor"`
						SetTextColor               bool        `json:"setText_color"`
						SetBgImg                   bool        `json:"setBg_img"`
						SetForeImg                 bool        `json:"setFore_img"`
						SetLineColor               bool        `json:"setLine_color"`
						SetImgURL                  bool        `json:"setImg_url"`
						SetRightIconURL            bool        `json:"setRightIconUrl"`
						SetRightTextColor          bool        `json:"setRight_text_color"`
						SetRightBgColor            bool        `json:"setRight_bg_color"`
						SetWordWeight              bool        `json:"setWord_weight"`
						SetFontSize                bool        `json:"setFont_size"`
						SetTransparency            bool        `json:"setTransparency"`
						SetBgColor                 bool        `json:"setBg_color"`
						SetExtra                   bool        `json:"setExtra"`
					} `json:"wmCKanoLabelStyle"`
					BizLine                       int         `json:"bizLine"`
					ZoneID                        int         `json:"zoneId"`
					ExtraMeta                     string      `json:"extraMeta"`
					LabelID                       int         `json:"labelId"`
					PreContent                    interface{} `json:"preContent"`
					SubLabelID                    int         `json:"subLabelId"`
					IntegrationLabelLists         interface{} `json:"integrationLabelLists"`
					ForwardLink                   interface{} `json:"forwardLink"`
					ExtraMap                      interface{} `json:"extraMap"`
					CangJieLabelType              interface{} `json:"cangJieLabelType"`
					RightContent                  interface{} `json:"rightContent"`
					SetContent                    bool        `json:"setContent"`
					SetPreContent                 bool        `json:"setPreContent"`
					ExtraMapSize                  int         `json:"extraMapSize"`
					SetExtraMap                   bool        `json:"setExtraMap"`
					SetValueType                  bool        `json:"setValueType"`
					SetWmCKanoLabelStyle          bool        `json:"setWmCKanoLabelStyle"`
					SetZoneID                     bool        `json:"setZoneId"`
					SetExtraMeta                  bool        `json:"setExtraMeta"`
					SetSubLabelID                 bool        `json:"setSubLabelId"`
					IntegrationLabelListsSize     int         `json:"integrationLabelListsSize"`
					IntegrationLabelListsIterator interface{} `json:"integrationLabelListsIterator"`
					SetIntegrationLabelLists      bool        `json:"setIntegrationLabelLists"`
					SetForwardLink                bool        `json:"setForwardLink"`
					SetCangJieLabelType           bool        `json:"setCangJieLabelType"`
					SetRightContent               bool        `json:"setRightContent"`
					SetPriority                   bool        `json:"setPriority"`
					SetScene                      bool        `json:"setScene"`
					SetLabelID                    bool        `json:"setLabelId"`
					SetBizLine                    bool        `json:"setBizLine"`
					SetExtra                      bool        `json:"setExtra"`
				} `json:"label_data"`
			} `json:"kano_static_labels"`
			NotShowRecommendRegion bool   `json:"not_show_recommend_region"`
			AuthStatus             int    `json:"auth_status"`
			ProductType            int    `json:"product_type"`
			FixAccessURI           string `json:"fixAccessUri"`
			RecommendReason        string `json:"recommend_reason,omitempty"`
		} `json:"product_spu_list"`
		AllSortedSpuID []int64 `json:"allSortedSpuId"`
		ActivityInfo   struct {
			ActivityText string `json:"activity_text"`
			SchemeURL    string `json:"scheme_url"`
			IconURL      string `json:"icon_url"`
			ViewType     int    `json:"view_type"`
			ActivityID   string `json:"activity_id"`
		} `json:"activity_info"`
		BannerList   []interface{} `json:"banner_list"`
		ButtonList   []interface{} `json:"button_list"`
		ShowSortType bool          `json:"show_sort_type"`
		TagType      int           `json:"tagType"`
		SortList     []struct {
			Style    int    `json:"style"`
			Text     string `json:"text"`
			Category int    `json:"category"`
			TypeList []int  `json:"typeList"`
		} `json:"sortList"`
		BrandUpdate                  bool          `json:"brandUpdate"`
		NewCustomerHotSaleProductSet interface{}   `json:"newCustomerHotSaleProductSet"`
		RuleContent                  interface{}   `json:"rule_content"`
		TagSource                    int           `json:"tagSource"`
		AllSpuIds                    []interface{} `json:"allSpuIds"`
		AllSpuIdsWithSaleType        []interface{} `json:"allSpuIdsWithSaleType"`
		HideShoppingCar              bool          `json:"hide_shopping_car"`
		EnableSpuMultiLabel          bool          `json:"enable_spu_multi_label"`
		CategoryID                   interface{}   `json:"categoryId"`
		ExtraInfo                    struct {
		} `json:"extra_info"`
		ActivityTags           []interface{} `json:"activity_tags"`
		ReceiveCouponTip       interface{}   `json:"receiveCouponTip"`
		TraceID                string        `json:"trace_id"`
		ThreeMonthSaled        int           `json:"three_month_saled"`
		ThreeMonthSaledContent string        `json:"three_month_saled_content"`
		SaleInfos              struct {
		} `json:"saleInfos"`
		APIResponseExtraInfo struct {
			APIStids     string `json:"api_stids"`
			RecTraceInfo string `json:"rec_trace_info"`
		} `json:"api_response_extra_info"`
		ShowThreeMonthSaled bool `json:"showThreeMonthSaled"`
	} `json:"data"`
}
